package Midium;
// 8.字符串转换整数
public class Solution8 {
    public int myAtoi(String s) {
        StringBuffer str = new StringBuffer();
        boolean first = true;
        boolean plus = true;
        try {
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == ' ' && first)
                    continue;
                first = false;
                if (s.charAt(i) == '+' || s.charAt(i) == '-' || (s.charAt(i) > 47 && s.charAt(i) < 58)) {
                    if (s.charAt(i) == '-') {
                        str.append('-');
                        i++;
                        plus = false;
                    }else if (s.charAt(i) == '+') {
                        str.append('+');
                        i++;
                        plus = true;
                    }
                    while (s.charAt(i) == '0')
                        i++;
                    for (int j = i; j < s.length(); j++) {
                        if (s.charAt(j) > 47 && s.charAt(j) < 58) {
                            str.append(s.charAt(j));
                        } else break;
                    }
                }
                break;
            }
        }catch (Exception e) {
            return 0;
        }
        try {
            if (str.length() == 0)
                return 0;
            // 只存储了一个符号的情况，比如—+12 存的就是—
            if (str.length() == 1 && (str.toString().equals("-")  || str.toString().equals("+") ))
                return 0;
            Integer integer = Integer.valueOf(str.toString());
            return integer;
        } catch (Exception e) {
            if (plus)
                return Integer.MAX_VALUE;
            else
                return Integer.MIN_VALUE;
        }

    }

    public static void main(String[] args) {
        Solution8 s8 = new Solution8();
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append('-');
        // 按理说String的==比的是指针，equals比的是内容。通过=号直接赋值给String的字符串都在常量池里。
        System.out.println(stringBuffer.toString().equals("-")); // true
        System.out.println(stringBuffer.toString()=="-");        // false
        System.out.println("123"==new String("123"));

        System.out.println(s8.myAtoi("9223372036854775808"));

    }
}
